#ifndef _LIGHT_SOURCE_H_
#define _LIGHT_SOURCE_H_

#include "RenderState.h"
#include "Point2.h"
#include "Point3.h"
#include "Vector3.h"
#include "Color.h"
#include "LightSample.h"

class LightSource
{
public:
	LightSource(void);
	~LightSource(void);

	virtual bool isVisible(RenderState* state)=0;
	virtual void getSample(Point2* rand, RenderState* state, LightSample* dest)=0;
	virtual void getPhoton(Point2* rand1, Point2* rand2, Point3* p, Vector3* dir, Color* power)=0;
	virtual double getAveragePower()=0;
};

#endif


